Descriptive Analysis & Preliminary Results

Introduction

The following document summarises the progress made thus far on Chapter 1: Local Fiscal Risks of Decarbonisation of my DPhil. The work aims to pursue a better understanding of how industrial transformation impacts local well-being. From an original interest in looking at all aspects of local public finance, the project has narrowed to focus on expenditure on public education and its connection to industrial prosperity and transformation.

Below, I provide some descriptive statistics and figures about the data, some preliminary regression tests of the significance of various GDP control variables, and some regression results using a standard TWFE model (with and without state-level trends) and coal mining activity as instruments for property taxes and GDP.

The main research question is: How does industrial transformation/activity impact county-level expenditure on public education?

Conclusion: I do not yet feel confident in any of the results below but hopefully these steps can help orient the next phase of analysis (ideally moving on to consider oil and gas industry treatment variables as well or treatments that proxy “industrial transformation” in a more general sense).

Data

All data used is reported annually at the county-level. Therefore, no time-invariant variables are included (apart from the State in which a county is in, which is made time-variant through the inclusion of a state-level trend in various models).

Expenditure and Revenue: The dependent variables of interest come from Willamette University’s Government Finance Database. The data includes county-level revenue and expenditure on public education including disaggregated values by revenue source (federal, state, or other intergovernmental revenue) and expenditure item (lunches, wages, debt). All values are reported in current US dollars. The data for property taxes collected used in regressions below also come from this dataset. Expenditure on vocational training and from Educational Service Agencies (ESAs) are also sourced from this dataset. The challenge of accounting for ESAs are shown in KR2 section below.

GDP Controls: US Bureau of Economic Analysis. Values are also reported in current US dollars (real GDP values exist). The controls used in the below are total, private industry, and oil, gas, mining & quarrying county-level GDP.

Population controls: US Census Bureau.

Coal mine activity and production levels: Mine Safety and Health Administration

Descriptive Statistics

The below summary table displays descriptive statistics for all indicators used in regression results below.

All values for total enrollment, revenue, taxes, expenditure are in thousand USD. Values for GDP are reported in million USD. Values for population are reported in thousands.

GDP controls are currently only available at the county level from 2001-2021. Expanding this

% Table created by stargazer v.5.2.3 by Marek Hlavac, Social Policy Institute. E-mail: marek.hlavac at gmail.com % Date and time: Thu, Mar 21, 2024 - 11:26:58

Descriptive Figures: County-level education expenditure

The following plot displays each county’s time series of expenditure (total and per pupil log values) as well as the overall mean. Colors correspond to the US state the county is in.

Key Relationships (KR)

Below are scatterplots and diagrams depicting key relationships between dependent and control variables as well as shares/components of key variables.

KR 1: Revenue Sources

Most important to tease out before modelling is how different revenue sources (federal, state, county (own), and other local sources) interplay. County-level revenue for public education is a combination of both local and intergovernmental sources. The local portion of the share is almost entirely sourced through property taxes. The intergovernmental sources come from state, federal, and local aid.

Below chart plots county-level mean (taken over the panel time horizon) of different intergovernmental (IG) sources versus own-source revenue (generated from local sources). The solid black line represents a best-fit line and the dashed line represents a 45 degree line. The blue plot shows Total IG Revenue (Federal + State + Other Local) versus own revenue. There is a near negative correlation between the two (ie. they are near-substitutes for one another). This effect is dominated by State IG revenue (as can be seen in the purple panel).

The following plots show the share of revenue for public education that comes from own sources, local intergovernmental, state intergovernmental, and federal intergovernmental by state. Almost all states have a near 50% split of revenue from state and own sources, which aligns with data from the Congressional Research Service cited in the Transfer of Status report. Massachusetts has an unusually high share of local IG support (inter-school aid), eclipsing own sources almost completely. From further research, I believe this has to do with a unique structure of Massachusetts public school funding which is reliant on several multi-county funding agencies (similar to the mentioned ESAs). This anomaly might warrant the exclusion of MA from the analysis.

Conclusion: I am still unsure how best to control for the effects of these shares on our results.

The below plot provides the same information as above but on a national level.

Conclusion: Corroborates the near-even split of revenue between state and own sources which seems to be a fact of public education revenue. I mainly include this as an alternative summarising figure to the above.

KR 2: ESAs and County Expenditure

Around 2007, many states instituted Educational Service Agencies (ESAs) which sought to “equalise” public education across the country. To date, ~45 states have ESAs which are responsible for multiple school districts, most often across multiple counties. Therefore, when modelling county-level expenditure it will be important to understand how this change in educational expenditure affected county-level spending (ie. did ESAs replace or supplement county-level funding).

Only 593 counties of 2740 in the dataset have recorded revenue/expenditure from ESAs. After some digging, I believe that these values for ESAs are improperly recorded in the sense that the revenue is recorded only in counties in which the ESA’s headquarters is located and not partitioned to the counties to which the revenue ultimately flows. All county-level total expenditure/revenue values that are used in the regressions on this page have explicitly excluded recorded ESA values for this reason (they are instead recorded in a variable called esa_tot_exp or esa_tot_rev in total and per pupil values).

The below graphs show some relationships between ESA and county-level finances. I have yet to arrive at a definitive understanding of how ESAs and county-level finances interact. They do not appear to be substitutes. As is evident, the data on ESA expenditure is patchy and highly volatile by county. At the moment, I believe this is because of imperfect/inconsistent reporting in comparison to traditional school district reporting. The four states that have recorded ESA expenditure before 2007 are California, Illinois, Minnesota, Oregon.

With this we want to demonstrate how ESAs interact with our expenditure indicator. Does high ESA spending imply low/high local spending? It seems from the below that the two have a no correlation, implying little substitution? (Each point is a county in a particular year starting from 2007, colour represents state). Warm color-scale is (top-left panel) is expenditure values whereas the cool color scales are revenue values. The black line is a 45 degree line.

KR 3: Revenue, Expenditure and Property Taxes

We know the majority of “own source” revenue comes from property taxes. The below scatterplots demonstrate the relationship between education revenue and expeniture versus property taxes collected. The solid black line represents a best-fit line and the dashed line represents a 45 degree line (intercept-adjusted to match data). The vertical dotted line represents a potential preliminary cutoff point for outliers - will be subject to further more rigorous testing.

KR 4: GDP and Property Taxes

The solid black line represents a best-fit line and the dashed line represents a 45 degree line (intercept-adjusted to match data).

GDP and Property taxes have a positive linear correlation, to be expected.

KR 5: GDP and Education Expenditure

The solid black line represents a best-fit line and the dashed line represents a 45 degree line (intercept-adjusted to match data).

GDP and Education expenditure have a positive linear correlation, as expected.

Preliminary Results

In the following set of results I report results for the sample used in the descriptive statistics above. With respect to the outlier threshold represented in KR3 I exclude any counties that report

Panel testing

is.pbalanced(df, index = c("fips", "year"))
[1] TRUE

Descriptive regression models

The below models were run to test the relevance of various GDP control variables (total, private industry, oil, gas & mining) as well as corroborate some relationships in the above scatter plots of KRs. Ideally, once variables have been surveyed, they will be put through model selection via getspanel.

All regression models that follow include TWFE (county- and year- fixed effects) and standard errors clustered by county.

All functional forms in the feols() functions below are of the form “Y ~ X” In the cases in which multiple estimations are included via sw(Xa, Xb, Xc + Xd), the function will return results for “Y~Xa”, “Y~Xb”, “Y ~ Xc + Xd”.

Education Expenditure ~ GDP

A 1% increase in GDP is associated with a 0.14% increase in education expenditure, dominated by the effect of GDP from private industry (0.12%). I include here also the GDP generated from the oil, gas, mining, and quarrying sector. The effect is statistically significant but small.

# feols(c(log_Total_Educ_Total_Exp, log_Elem_Educ_Total_Exp) ~ sw(log_gdp_total,
#                                       log_gdp_priv_ind,
#                                       log_gdp_o_g_mining_quarr_21) | fips + year, data = mines_df, se = "cluster", cluster = "fips") %>% etable(se.below = TRUE) %>% kable


list(feols(log_Total_Educ_Total_Exp_pp ~ l(log_Total_Educ_Total_Exp_pp, 1) + sw0(log_gdp_total_pc,
                                         log_gdp_priv_ind_pc,
                                         log_gdp_o_g_mining_quarr_21_pc) | fips + year, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
     feols(log_Total_Educ_Total_Exp_pp ~ sw(log_gdp_total_pc,
                                         log_gdp_priv_ind_pc,
                                         log_gdp_o_g_mining_quarr_21_pc) | fips + year, data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)) %>% etable(se.below = TRUE) %>% kable
NOTE: 2,710 observations removed because of NA values (RHS: 2,710).
      |-> this msg only concerns the variables common to all estimations
.1 .2 .3 .4 .1 .2 .3
Dependent Var.: (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp
l(log_Total_Educ_Total_Exp_pp,1) 0.6058*** 0.5844*** 0.5869*** 0.6034***
(0.0089) (0.0073) (0.0074) (0.0087)
(log) GDP pc 0.1010*** 0.1994***
(0.0066) (0.0136)
(log) GDP Priv. Industry pc 0.0853*** 0.1675***
(0.0059) (0.0121)
(log) O&G&Mining pc 0.0055*** 0.0106***
(0.0007) (0.0012)
Fixed-Effects: ------------------- ------------------- ------------------- ------------------- ------------------- ------------------- -------------------
fips Yes Yes Yes Yes Yes Yes Yes
year Yes Yes Yes Yes Yes Yes Yes
________________________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________ ___________________
S.E.: Clustered by: fips by: fips by: fips by: fips by: fips by: fips by: fips
Observations 54,200 54,200 54,200 54,200 56,700 56,700 56,700
R2 0.87755 0.87992 0.87968 0.87783 0.82216 0.82107 0.81361
Within R2 0.36193 0.37429 0.37305 0.36339 0.05131 0.04546 0.00569
list(feols(log_Elem_Educ_Total_Exp_pp ~ l(log_Elem_Educ_Total_Exp_pp, 1) + sw0(log_gdp_total_pc,
                                         log_gdp_priv_ind_pc,
                                         log_gdp_o_g_mining_quarr_21_pc) | fips + year, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
     feols(log_Elem_Educ_Total_Exp_pp ~ sw(log_gdp_total_pc,
                                         log_gdp_priv_ind_pc,
                                         log_gdp_o_g_mining_quarr_21_pc) | fips + year, data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)) %>% etable(se.below = TRUE) %>% kable
NOTE: 2,710 observations removed because of NA values (RHS: 2,710).
      |-> this msg only concerns the variables common to all estimations
.1 .2 .3 .4 .1 .2 .3
Dependent Var.: (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp
l(log_Elem_Educ_Total_Exp_pp,1) 0.6041*** 0.5827*** 0.5852*** 0.6017***
(0.0090) (0.0074) (0.0075) (0.0088)
(log) GDP pc 0.1007*** 0.1984***
(0.0066) (0.0136)
(log) GDP Priv. Industry pc 0.0851*** 0.1666***
(0.0059) (0.0121)
(log) O&G&Mining pc 0.0053*** 0.0104***
(0.0007) (0.0012)
Fixed-Effects: ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
fips Yes Yes Yes Yes Yes Yes Yes
year Yes Yes Yes Yes Yes Yes Yes
_______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________
S.E.: Clustered by: fips by: fips by: fips by: fips by: fips by: fips by: fips
Observations 54,200 54,200 54,200 54,200 56,700 56,700 56,700
R2 0.87889 0.88124 0.88100 0.87915 0.82461 0.82352 0.81614
Within R2 0.36002 0.37246 0.37121 0.36143 0.05139 0.04551 0.00556

Incorporating time lags

Have not yet incorporated an AR term Education expenditure has a highly relevant time dependence. The effect of increases in GDP two years prior has the greatest effect on current education expenditure, implying a delayed effect of county-level economic prosperity/decline on public education expenditure.

Question: Is the above interpretation of the time dependence accurate?

levs_gdp_real_trend <- feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ sw(log_gdp_total + log_gdp_total_l1 + log_gdp_total_l2, log_gdp_priv_ind + log_gdp_priv_ind_l1 + log_gdp_priv_ind_l2) + time:as.factor(state) | fips + year, data = mines_df, se = "cluster", cluster = "fips")
levs_gdp_real_trend %>% etable(., drop = "time*", se.below = TRUE) %>% kable
..1 ..2 ..3 ..4
Dependent Var.: (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp
(log) GDP 0.0044 0.0036
(0.0109) (0.0109)
(log,l1) GDP 0.0578*** 0.0582***
(0.0077) (0.0077)
(log,l2) GDP 0.1268*** 0.1272***
(0.0176) (0.0175)
(log) GDP Priv. Industry 0.0041 0.0034
(0.0094) (0.0094)
(log,l1) GDP Priv. Industry 0.0508*** 0.0511***
(0.0067) (0.0066)
(log,l2) GDP Priv. Industry 0.1101*** 0.1104***
(0.0151) (0.0151)
Fixed-Effects: ------------------- ------------------- ------------------------------ ------------------------------
fips Yes Yes Yes Yes
year Yes Yes Yes Yes
___________________________ ___________________ ___________________ ______________________________ ______________________________
S.E.: Clustered by: fips by: fips by: fips by: fips
Observations 51,490 51,490 51,490 51,490
R2 0.82611 0.82566 0.82845 0.82801
Within R2 0.10747 0.10513 0.10761 0.10532
feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ sw(log_gdp_total_pc + log_gdp_total_pc_l1 + log_gdp_total_pc_l2, 
                                      log_gdp_priv_ind_pc + log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2,
                                      log_gdp_o_g_mining_quarr_21 + log_gdp_o_g_mining_quarr_21_l1 + log_gdp_o_g_mining_quarr_21_l2) + time:as.factor(state) | fips + year, data = mines_df, se = "cluster", cluster = "fips") %>%  etable(., drop = "time*", se.below = TRUE) %>% kable
..1 ..2 ..3 ..4 ..5 ..6
Dependent Var.: (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp
(log) GDP pc 0.0152 0.0141
(0.0109) (0.0109)
(log,l1) GDP pc 0.0713*** 0.0716***
(0.0104) (0.0103)
(log,l2) GDP pc 0.1533*** 0.1537***
(0.0164) (0.0164)
(log) GDP Priv. Industry pc 0.0121 0.0112
(0.0093) (0.0093)
(log,l1) GDP Priv. Industry pc 0.0614*** 0.0615***
(0.0086) (0.0086)
(log,l2) GDP Priv. Industry pc 0.1299*** 0.1302***
(0.0143) (0.0143)
(log) GDP O&G&Mining 0.0009** 0.0009**
(0.0003) (0.0003)
(log,l1) GDP O&G&Mining 0.0007* 0.0006
(0.0003) (0.0003)
(log,l2) GDP O&G&Mining 0.0014*** 0.0013***
(0.0004) (0.0004)
Fixed-Effects: ------------------- ------------------- ------------------- ------------------------------ ------------------------------ ------------------------------
fips Yes Yes Yes Yes Yes Yes
year Yes Yes Yes Yes Yes Yes
______________________________ ___________________ ___________________ ___________________ ______________________________ ______________________________ ______________________________
S.E.: Clustered by: fips by: fips by: fips by: fips by: fips by: fips
Observations 51,490 51,490 51,490 51,490 51,490 51,490
R2 0.82973 0.82867 0.81878 0.83203 0.83098 0.82108
Within R2 0.12605 0.12059 0.06982 0.12621 0.12074 0.06927
feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ sw(log_gdp_total_pc + log_gdp_total_pc_l1 + log_gdp_total_pc_l2, 
                                      log_gdp_priv_ind_pc + log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2,
                                      log_gdp_o_g_mining_quarr_21_pc + log_gdp_o_g_mining_quarr_21_pc_l1 + log_gdp_o_g_mining_quarr_21_pc_l2) + time:as.factor(state) | fips + year, data = mines_df, se = "cluster", cluster = "fips") %>%  etable(., drop = "time*", se.below = TRUE) %>% kable
..1 ..2 ..3 ..4 ..5 ..6
Dependent Var.: (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp
(log) GDP pc 0.0152 0.0141
(0.0109) (0.0109)
(log,l1) GDP pc 0.0713*** 0.0716***
(0.0104) (0.0103)
(log,l2) GDP pc 0.1533*** 0.1537***
(0.0164) (0.0164)
(log) GDP Priv. Industry pc 0.0121 0.0112
(0.0093) (0.0093)
(log,l1) GDP Priv. Industry pc 0.0614*** 0.0615***
(0.0086) (0.0086)
(log,l2) GDP Priv. Industry pc 0.1299*** 0.1302***
(0.0143) (0.0143)
(log) O&G&Mining pc 0.0035** 0.0034**
(0.0011) (0.0011)
(log,l1) O&G&Mining pc 0.0034** 0.0033**
(0.0012) (0.0012)
(log,l2) O&G&Mining pc 0.0082*** 0.0079***
(0.0014) (0.0014)
Fixed-Effects: ------------------- ------------------- ------------------- ------------------------------ ------------------------------ ------------------------------
fips Yes Yes Yes Yes Yes Yes
year Yes Yes Yes Yes Yes Yes
______________________________ ___________________ ___________________ ___________________ ______________________________ ______________________________ ______________________________
S.E.: Clustered by: fips by: fips by: fips by: fips by: fips by: fips
Observations 51,490 51,490 51,490 51,490 51,490 51,490
R2 0.82973 0.82867 0.81986 0.83203 0.83098 0.82212
Within R2 0.12605 0.12059 0.07534 0.12621 0.12074 0.07465

Coal Mine & Production Data

Coal mine data exists from 1996-2021. The below is a preliminary treatment attempt using data on active coal production (total_active_prod) and active coal mines (total_active_n).

Question: might it be more interesting to look at the first difference of mining and production activity to understand the effect of a change in activity?

Standard TWFE panel regression

list(feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ log_gdp_priv_ind_pc + log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + diff_total_active_n + l1_diff_total_active_n + l2_diff_total_active_n | fips + year, data = mines_df, se = "cluster", cluster = "fips"),
feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ sw(log_gdp_priv_ind_pc + log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + diff_total_active_prod + l1_diff_total_active_prod + l2_diff_total_active_prod,
                                         log_gdp_total_pc + log_gdp_total_pc_l1 + log_gdp_total_pc_l2 + diff_total_active_n + l1_diff_total_active_n + l2_diff_total_active_n,
                                         log_gdp_total_pc + log_gdp_total_pc_l1 + log_gdp_total_pc_l2 + diff_total_active_prod + l1_diff_total_active_prod + l2_diff_total_active_prod) | fips + year, data = mines_df, se = "cluster", cluster = "fips")) %>% etable(se.below = TRUE) %>% kable
.1 .2 .1 .2 .3 .4 .5 .6
Dependent Var.: (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp
(log) GDP Priv. Industry pc 0.0145 0.0137 0.0145 0.0137
(0.0095) (0.0095) (0.0095) (0.0095)
(log,l1) GDP Priv. Industry pc 0.0646*** 0.0647*** 0.0645*** 0.0646***
(0.0086) (0.0085) (0.0086) (0.0086)
(log,l2) GDP Priv. Industry pc 0.1462*** 0.1457*** 0.1463*** 0.1457***
(0.0131) (0.0131) (0.0131) (0.0131)
(fd) Active Coal Mines -0.0001 -6.5e-5 -0.0001 -7.86e-5
(0.0011) (0.0011) (0.0011) (0.0011)
(l1, fd) Active Coal Mines -0.0004 -0.0004 -0.0005 -0.0004
(0.0010) (0.0010) (0.0010) (0.0010)
(l2, fd) Active Coal Mines -0.0018* -0.0017* -0.0018* -0.0018*
(0.0009) (0.0009) (0.0009) (0.0009)
(fd) Active Coal Prod -0.0003 -0.0003 -0.0003 -0.0002
(0.0009) (0.0009) (0.0009) (0.0009)
(l1,fd) Active Coal Prod -0.0005 -0.0005 -0.0005 -0.0005
(0.0007) (0.0007) (0.0007) (0.0007)
(l2,fd) Active Coal Prod -0.0019*** -0.0019*** -0.0018*** -0.0019***
(0.0004) (0.0004) (0.0004) (0.0004)
(log) GDP pc 0.0191 0.0191 0.0180 0.0180
(0.0112) (0.0111) (0.0111) (0.0111)
(log,l1) GDP pc 0.0746*** 0.0745*** 0.0748*** 0.0747***
(0.0103) (0.0103) (0.0103) (0.0103)
(log,l2) GDP pc 0.1715*** 0.1716*** 0.1709*** 0.1710***
(0.0150) (0.0150) (0.0150) (0.0150)
Fixed-Effects: ------------------- ------------------------------ ------------------- ------------------- ------------------- ------------------------------ ------------------------------ ------------------------------
fips Yes Yes Yes Yes Yes Yes Yes Yes
year Yes Yes Yes Yes Yes Yes Yes Yes
______________________________ ___________________ ______________________________ ___________________ ___________________ ___________________ ______________________________ ______________________________ ______________________________
S.E.: Clustered by: fips by: fips by: fips by: fips by: fips by: fips by: fips by: fips
Observations 51,490 51,490 51,490 51,490 51,490 51,490 51,490 51,490
R2 0.81898 0.82141 0.81899 0.82041 0.82042 0.82142 0.82284 0.82284
Within R2 0.07084 0.07099 0.07087 0.07820 0.07823 0.07102 0.07839 0.07842
list(feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ log_gdp_priv_ind_pc + log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + l(total_active_n, 0:2)  | fips + year, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
     feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp) ~ sw(log_gdp_priv_ind_pc + log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + l(total_active_prod, 0:2),
                                         log_gdp_total_pc + log_gdp_total_pc_l1 + log_gdp_total_pc_l2 + l(total_active_n, 0:2),
                                         log_gdp_total_pc + log_gdp_total_pc_l1 + log_gdp_total_pc_l2 + l(total_active_prod, 0:2)) | fips + year, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)) %>% etable(se.below = TRUE) %>% kable
.1 .2 .1 .2 .3 .4 .5 .6
Dependent Var.: (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp (log) Elementary Educ. Exp. pp
(log) GDP Priv. Industry pc 0.0149 0.0140 0.0145 0.0137
(0.0095) (0.0095) (0.0095) (0.0095)
(log,l1) GDP Priv. Industry pc 0.0646*** 0.0647*** 0.0645*** 0.0646***
(0.0086) (0.0086) (0.0086) (0.0086)
(log,l2) GDP Priv. Industry pc 0.1465*** 0.1460*** 0.1464*** 0.1459***
(0.0131) (0.0131) (0.0132) (0.0132)
Active Coal Mines -0.0005 -0.0004 -0.0006 -0.0005
(0.0011) (0.0011) (0.0011) (0.0011)
(l1) Active Coal Mines -0.0004 -0.0004 -0.0004 -0.0004
(0.0009) (0.0009) (0.0009) (0.0009)
(l2) Active Coal Mines -0.0009 -0.0009 -0.0009 -0.0009
(0.0010) (0.0010) (0.0010) (0.0010)
Active Coal Prod -1.56e-7 -1.29e-7 -1.26e-7 -9.94e-8
(8.32e-7) (8.31e-7) (8.49e-7) (8.48e-7)
(l1) Active Coal Prod -2.9e-7 -3.08e-7 -2.91e-7 -3.1e-7
(3.45e-7) (3.43e-7) (3.5e-7) (3.48e-7)
(l2) Active Coal Prod 3.5e-8 -9.07e-8 5.6e-8 -6.98e-8
(1.45e-6) (1.47e-6) (1.44e-6) (1.46e-6)
(log) GDP pc 0.0195 0.0191 0.0184 0.0180
(0.0112) (0.0111) (0.0111) (0.0111)
(log,l1) GDP pc 0.0746*** 0.0745*** 0.0748*** 0.0747***
(0.0103) (0.0103) (0.0103) (0.0103)
(log,l2) GDP pc 0.1719*** 0.1717*** 0.1712*** 0.1711***
(0.0150) (0.0150) (0.0150) (0.0150)
Fixed-Effects: ------------------- ------------------------------ ------------------- ------------------- ------------------- ------------------------------ ------------------------------ ------------------------------
fips Yes Yes Yes Yes Yes Yes Yes Yes
year Yes Yes Yes Yes Yes Yes Yes Yes
______________________________ ___________________ ______________________________ ___________________ ___________________ ___________________ ______________________________ ______________________________ ______________________________
S.E.: Clustered by: fips by: fips by: fips by: fips by: fips by: fips by: fips by: fips
Observations 51,490 51,490 51,490 51,490 51,490 51,490 51,490 51,490
R2 0.81899 0.82142 0.81897 0.82043 0.82041 0.82141 0.82285 0.82283
Within R2 0.07091 0.07104 0.07082 0.07828 0.07818 0.07096 0.07846 0.07837

Dealing with endogeneity

There is a significant endogeneity concern in using total active production and active mines as the treatment variable. Therefore, I have tried two instrumental variable approaches below and aim to add results using production- and employment-based Bartik instruments.

Instrumental Variable

We consider using total active production or total active mines as an instrument affecting education expenditure through property taxes or GDP. We know that property taxes have an endogenous relationship with education expenditure (it is a component of the public education budget), however, in theory mine closures/activity is unlikely to affect education expenditure, except via property taxes. We test this hypothesis below.

Conclusion: The results themselves are not promising (I think??)

Using coal production and mine activity as instruments for per capita property tax

To my eye, I don’t see any of these being useful - either they fail a first-stage F-test or the resulting coefficient on the treatment is statistically insignificant.

# Using total active production as an instrument for per capita property tax
feols(log_Total_Educ_Total_Exp_pp ~ l(log_Total_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ total_active_prod, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: total_active_prod
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 54,200 
Fixed-effects: fips: 2,710,  year: 20
Standard-errors: Clustered (fips) 
                                  Estimate Std. Error t value   Pr(>|t|)    
fit_log_Property_Tax_pp           0.380481   0.161552 2.35516 1.8586e-02 *  
l(log_Total_Educ_Total_Exp_pp, 1) 0.418648   0.079832 5.24413 1.6914e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.127886     Adj. R2: 0.837506
                 Within R2: 0.195924
F-test (1st stage), (log) Property Taxes pp: stat = 6.99356, p = 0.008183, on 1 and 54,178 DoF.
                                 Wu-Hausman: stat = 2.19171, p = 0.138761, on 1 and 51,468 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ l(log_Elem_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ total_active_prod, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: total_active_prod
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 54,200 
Fixed-effects: fips: 2,710,  year: 20
Standard-errors: Clustered (fips) 
                                 Estimate Std. Error t value   Pr(>|t|)    
fit_log_Property_Tax_pp          0.391712   0.166631 2.35077 1.8806e-02 *  
l(log_Elem_Educ_Total_Exp_pp, 1) 0.412008   0.082105 5.01804 5.5581e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.129112     Adj. R2: 0.834624
                 Within R2: 0.170155
F-test (1st stage), (log) Property Taxes pp: stat = 6.7651 , p = 0.009298, on 1 and 54,178 DoF.
                                 Wu-Hausman: stat = 2.35562, p = 0.124838, on 1 and 51,468 DoF.
# Using the lag of total active production as an instrument for per capita property tax
feols(log_Total_Educ_Total_Exp_pp ~ l(log_Total_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ l(total_active_prod,1), data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: l(total_active_prod, 1)
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 54,000 
Fixed-effects: fips: 2,700,  year: 20
Standard-errors: Clustered (fips) 
                                  Estimate Std. Error t value   Pr(>|t|)    
fit_log_Property_Tax_pp           0.410549   0.219347 1.87169 0.06135785 .  
l(log_Total_Educ_Total_Exp_pp, 1) 0.405674   0.107155 3.78586 0.00015651 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.119107     Adj. R2: 0.858302
                 Within R2: 0.302456
F-test (1st stage), (log) Property Taxes pp: stat = 11.0    , p = 9.151e-4, on 1 and 53,978 DoF.
                                 Wu-Hausman: stat =  1.94096, p = 0.16357 , on 1 and 51,278 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ l(log_Elem_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ l(total_active_prod,1), data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: l(total_active_prod, 1)
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 54,000 
Fixed-effects: fips: 2,700,  year: 20
Standard-errors: Clustered (fips) 
                                 Estimate Std. Error t value   Pr(>|t|)    
fit_log_Property_Tax_pp          0.421586   0.225726 1.86769 0.06191303 .  
l(log_Elem_Educ_Total_Exp_pp, 1) 0.399242   0.109927 3.63187 0.00028661 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.119875     Adj. R2: 0.856682
                 Within R2: 0.284533
F-test (1st stage), (log) Property Taxes pp: stat = 10.6    , p = 0.001115, on 1 and 53,978 DoF.
                                 Wu-Hausman: stat =  2.12024, p = 0.14537 , on 1 and 51,278 DoF.
# Using total active mines as an instrument for per capita property tax
feols(log_Total_Educ_Total_Exp_pp ~ l(log_Total_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ total_active_n, data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: total_active_n
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 54,000 
Fixed-effects: fips: 2,700,  year: 20
Standard-errors: Clustered (fips) 
                                  Estimate Std. Error  t value Pr(>|t|) 
fit_log_Property_Tax_pp           1.103790   1.132518 0.974634  0.32983 
l(log_Total_Educ_Total_Exp_pp, 1) 0.067935   0.551994 0.123072  0.90206 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.211179     Adj. R2: 0.554561
                 Within R2: -1.19279
F-test (1st stage), (log) Property Taxes pp: stat = 1.71329, p = 0.190564, on 1 and 53,978 DoF.
                                 Wu-Hausman: stat = 4.44018, p = 0.035107, on 1 and 51,278 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ l(log_Elem_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ total_active_n, data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: total_active_n
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 54,000 
Fixed-effects: fips: 2,700,  year: 20
Standard-errors: Clustered (fips) 
                                  Estimate Std. Error   t value Pr(>|t|) 
fit_log_Property_Tax_pp           1.269797   1.484555  0.855339  0.39244 
l(log_Elem_Educ_Total_Exp_pp, 1) -0.012671   0.721284 -0.017567  0.98599 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.239677     Adj. R2: 0.427071
                 Within R2: -1.86014
F-test (1st stage), (log) Property Taxes pp: stat = 1.29917, p = 0.254369, on 1 and 53,978 DoF.
                                 Wu-Hausman: stat = 4.73616, p = 0.02954 , on 1 and 51,278 DoF.
# Using lag of total active mines as an instrument for per capita property tax
feols(log_Total_Educ_Total_Exp_pp ~ l(log_Total_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ l(total_active_n,1:2), data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: l(total_active_n, 1), l(total_active_n, 2)
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 51,300 
Fixed-effects: fips: 2,700,  year: 19
Standard-errors: Clustered (fips) 
                                  Estimate Std. Error t value  Pr(>|t|)    
fit_log_Property_Tax_pp           0.462123   0.238564 1.93711 0.0528365 .  
l(log_Total_Educ_Total_Exp_pp, 1) 0.375618   0.113156 3.31946 0.0009139 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.123169     Adj. R2: 0.843794
                 Within R2: 0.244667
F-test (1st stage), (log) Property Taxes pp: stat = 3.51732 , p = 0.029686, on 2 and 51,278 DoF.
                                 Wu-Hausman: stat = 1.75648 , p = 0.185071, on 1 and 48,579 DoF.
                                     Sargan: stat = 0.655074, p = 0.418305, on 1 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ l(log_Elem_Educ_Total_Exp_pp, 1) | fips + year | log_Property_Tax_pp ~ l(total_active_n,1:2), data = mines_restr, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_Property_Tax_pp, Instr.: l(total_active_n, 1), l(total_active_n, 2)
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 51,300 
Fixed-effects: fips: 2,700,  year: 19
Standard-errors: Clustered (fips) 
                                 Estimate Std. Error t value  Pr(>|t|)    
fit_log_Property_Tax_pp          0.462834   0.248439 1.86297 0.0625756 .  
l(log_Elem_Educ_Total_Exp_pp, 1) 0.374285   0.117442 3.18698 0.0014541 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.123211     Adj. R2: 0.843942
                 Within R2: 0.235191
F-test (1st stage), (log) Property Taxes pp: stat = 3.27467 , p = 0.037837, on 2 and 51,278 DoF.
                                 Wu-Hausman: stat = 1.69032 , p = 0.193565, on 1 and 48,579 DoF.
                                     Sargan: stat = 0.675589, p = 0.41111 , on 1 DoF.
Using coal production and mine activity as instruments for per capita gdp

All pass a first-stage F-test with high statistic and low p-value; however, less than satisfactory on the Wu-Hausman endogeneity test.

It seems that if we replace the “total education expenditure per pupil” with a measure of total expenditure on elementary education only, the effect is more pronounced.

Conclusion: This is the results I am most inclined to “report” in some way, even though it is weak. So I am curious for your thoughts on the validity (and blind spots I’ve missed when constructing the model).

# Using total active production as an instrument for per capita gdp
feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ total_active_prod, data = mines_df, se = "cluster", cluster = "fips")
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: total_active_prod
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 56,910 
Fixed-effects: fips: 2,710,  year: 21
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value   Pr(>|t|)    
fit_log_gdp_total_pc 0.133674   0.032813 4.07388 4.7565e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.139391     Adj. R2: 0.81311
                 Within R2: 0.04608
F-test (1st stage), (log) GDP pc: stat = 272.9    , p < 2.2e-16 , on 1 and 56,888 DoF.
                      Wu-Hausman: stat =   1.56935, p = 0.210307, on 1 and 54,178 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ total_active_prod, data = mines_df, se = "cluster", cluster = "fips")
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: total_active_prod
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 56,910 
Fixed-effects: fips: 2,710,  year: 21
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value   Pr(>|t|)    
fit_log_gdp_total_pc 0.141252   0.032399 4.35971 1.3509e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.138426     Adj. R2: 0.815934
                 Within R2: 0.047508
F-test (1st stage), (log) GDP pc: stat = 272.9    , p < 2.2e-16 , on 1 and 56,888 DoF.
                      Wu-Hausman: stat =   1.20347, p = 0.272635, on 1 and 54,178 DoF.
# Using the lag of total active production as an instrument for per capita gdp
feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ l(total_active_prod,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: l(total_active_prod, 1)
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 54,200 
Fixed-effects: fips: 2,710,  year: 20
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value   Pr(>|t|)    
fit_log_gdp_total_pc 0.175387   0.043746 4.00923 6.2562e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.139101     Adj. R2: 0.807762
                 Within R2: 0.048723
F-test (1st stage), (log) GDP pc: stat = 260.2     , p < 2.2e-16 , on 1 and 54,179 DoF.
                      Wu-Hausman: stat =   0.172179, p = 0.678184, on 1 and 51,469 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ l(total_active_prod,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: l(total_active_prod, 1)
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 54,200 
Fixed-effects: fips: 2,710,  year: 20
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value   Pr(>|t|)    
fit_log_gdp_total_pc 0.181331   0.043199 4.19758 2.7847e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.138211     Adj. R2: 0.810498
                 Within R2: 0.049074
F-test (1st stage), (log) GDP pc: stat = 260.2     , p < 2.2e-16 , on 1 and 54,179 DoF.
                      Wu-Hausman: stat =   0.082524, p = 0.773907, on 1 and 51,469 DoF.
# Using total active mines as an instrument for per capita gdp
feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ total_active_n, data = mines_df, se = "cluster", cluster = "fips")
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: total_active_n
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 56,910 
Fixed-effects: fips: 2,710,  year: 21
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value Pr(>|t|) 
fit_log_gdp_total_pc 0.087459   0.059381 1.47286   0.1409 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.140172     Adj. R2: 0.811012
                 Within R2: 0.035371
F-test (1st stage), (log) GDP pc: stat = 374.9    , p < 2.2e-16 , on 1 and 56,888 DoF.
                      Wu-Hausman: stat =   6.18839, p = 0.012862, on 1 and 54,178 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ total_active_n, data = mines_df, se = "cluster", cluster = "fips")
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: total_active_n
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 56,910 
Fixed-effects: fips: 2,710,  year: 21
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value Pr(>|t|)    
fit_log_gdp_total_pc 0.106217   0.055931 1.89907 0.057662 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.138927     Adj. R2: 0.814597
                 Within R2: 0.040593
F-test (1st stage), (log) GDP pc: stat = 374.9   , p < 2.2e-16 , on 1 and 56,888 DoF.
                      Wu-Hausman: stat =   4.2574, p = 0.039084, on 1 and 54,178 DoF.
# Using lag og total active mines as an instrument for per capita gdp
feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ l(total_active_n,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Total_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: l(total_active_n, 1)
Second stage: Dep. Var.: log_Total_Educ_Total_Exp_pp
Observations: 54,200 
Fixed-effects: fips: 2,710,  year: 20
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value Pr(>|t|)    
fit_log_gdp_total_pc 0.111891   0.058146 1.92432  0.05442 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.139737     Adj. R2: 0.805999
                 Within R2: 0.040002
F-test (1st stage), (log) GDP pc: stat = 359.5    , p < 2.2e-16 , on 1 and 54,179 DoF.
                      Wu-Hausman: stat =   3.37167, p = 0.066332, on 1 and 51,469 DoF.
feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_gdp_total_pc ~ l(total_active_n,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)
TSLS estimation, Dep. Var.: log_Elem_Educ_Total_Exp_pp, Endo.: log_gdp_total_pc, Instr.: l(total_active_n, 1)
Second stage: Dep. Var.: log_Elem_Educ_Total_Exp_pp
Observations: 54,200 
Fixed-effects: fips: 2,710,  year: 20
Standard-errors: Clustered (fips) 
                     Estimate Std. Error t value Pr(>|t|)    
fit_log_gdp_total_pc 0.124532   0.056655 2.19806 0.028029 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
RMSE: 0.138674     Adj. R2: 0.809226
                 Within R2: 0.042692
F-test (1st stage), (log) GDP pc: stat = 359.5    , p < 2.2e-16 , on 1 and 54,179 DoF.
                      Wu-Hausman: stat =   2.40697, p = 0.120802, on 1 and 51,469 DoF.

Regression tables for ToS

Standard controls and coal production data

# Total educ w/0 county-level trends
feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp)  ~ log_gdp_priv_ind_pc +
             sw0(log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2,
                log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + diff_total_active_n,
                log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + l(diff_total_active_n, 0:2),
                 log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + diff_total_active_prod,
                log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + l(diff_total_active_prod, 0:2)) | fips + year, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year) %>% etable(se.below = TRUE, tex = TRUE)
\begingroup
\centering
\begin{tabular}{lcccccccccccc}
   \tabularnewline \midrule \midrule
   Dependent Variables: & \multicolumn{6}{c}{(log) Educ. Exp. pp} & \multicolumn{6}{c}{(log) Elementary Educ. Exp. pp}\\
   Model:                         & (1)            & (2)            & (3)                    & (4)            & (5)                    & (6)             & (7)            & (8)            & (9)                   & (10)                  & (11)                   & (12)\\  
   \midrule
   \emph{Variables}\\
   (log) GDP Priv. Industry pc    & 0.1683$^{***}$ & 0.0143         & 0.0143                 & 0.0145         & 0.0144                 & 0.0145          & 0.1674$^{***}$ & 0.0135         & 0.0135                & 0.0137                & 0.0135                 & 0.0137\\   
                                  & (0.0121)       & (0.0095)       & (0.0095)               & (0.0095)       & (0.0095)               & (0.0095)        & (0.0121)       & (0.0095)       & (0.0095)              & (0.0095)              & (0.0095)               & (0.0095)\\   
   (log,l1) GDP Priv. Industry pc &                & 0.0644$^{***}$ & 0.0644$^{***}$         & 0.0646$^{***}$ & 0.0644$^{***}$         & 0.0645$^{***}$  &                & 0.0645$^{***}$ & 0.0645$^{***}$        & 0.0647$^{***}$        & 0.0645$^{***}$         & 0.0646$^{***}$\\   
                                  &                & (0.0085)       & (0.0085)               & (0.0086)       & (0.0086)               & (0.0086)        &                & (0.0085)       & (0.0085)              & (0.0085)              & (0.0085)               & (0.0086)\\   
   (log,l2) GDP Priv. Industry pc &                & 0.1464$^{***}$ & 0.1464$^{***}$         & 0.1462$^{***}$ & 0.1464$^{***}$         & 0.1463$^{***}$  &                & 0.1459$^{***}$ & 0.1459$^{***}$        & 0.1457$^{***}$        & 0.1459$^{***}$         & 0.1457$^{***}$\\   
                                  &                & (0.0131)       & (0.0131)               & (0.0131)       & (0.0131)               & (0.0131)        &                & (0.0131)       & (0.0131)              & (0.0131)              & (0.0131)               & (0.0131)\\   
   (fd) Active Coal Mines         &                &                & $-2.53\times 10^{-5}$  & -0.0001        &                        &                 &                &                & $2.78\times 10^{-5}$  & $-6.5\times 10^{-5}$  &                        &   \\   
                                  &                &                & (0.0010)               & (0.0011)       &                        &                 &                &                & (0.0010)              & (0.0011)              &                        &   \\   
   (l1,fd) Active Coal Mines      &                &                &                        & -0.0004        &                        &                 &                &                &                       & -0.0004               &                        &   \\   
                                  &                &                &                        & (0.0010)       &                        &                 &                &                &                       & (0.0010)              &                        &   \\   
   (l2,fd) Active Coal Mines      &                &                &                        & -0.0018$^{**}$ &                        &                 &                &                &                       & -0.0017$^{**}$        &                        &   \\   
                                  &                &                &                        & (0.0009)       &                        &                 &                &                &                       & (0.0009)              &                        &   \\   
   (fd) Active Coal Prod          &                &                &                        &                & $-9.32\times 10^{-5}$  & -0.0003         &                &                &                       &                       & $-6.88\times 10^{-5}$  & -0.0003\\   
                                  &                &                &                        &                & (0.0008)               & (0.0009)        &                &                &                       &                       & (0.0008)               & (0.0009)\\   
   (l1,fd) Active Coal Prod       &                &                &                        &                &                        & -0.0005         &                &                &                       &                       &                        & -0.0005\\   
                                  &                &                &                        &                &                        & (0.0007)        &                &                &                       &                       &                        & (0.0007)\\   
   (l2,fd) Active Coal Prod       &                &                &                        &                &                        & -0.0019$^{***}$ &                &                &                       &                       &                        & -0.0018$^{***}$\\   
                                  &                &                &                        &                &                        & (0.0004)        &                &                &                       &                       &                        & (0.0004)\\   
   \midrule
   \emph{Fixed-effects}\\
   fips                           & Yes            & Yes            & Yes                    & Yes            & Yes                    & Yes             & Yes            & Yes            & Yes                   & Yes                   & Yes                    & Yes\\  
   year                           & Yes            & Yes            & Yes                    & Yes            & Yes                    & Yes             & Yes            & Yes            & Yes                   & Yes                   & Yes                    & Yes\\  
   \midrule
   \emph{Fit statistics}\\
   Observations                   & 56,910         & 51,490         & 51,490                 & 51,490         & 51,490                 & 51,490          & 56,910         & 51,490         & 51,490                & 51,490                & 51,490                 & 51,490\\  
   R$^2$                          & 0.82205        & 0.81897        & 0.81897                & 0.81898        & 0.81897                & 0.81899         & 0.82448        & 0.82141        & 0.82141               & 0.82141               & 0.82141                & 0.82142\\  
   Within R$^2$                   & 0.04592        & 0.07081        & 0.07081                & 0.07084        & 0.07081                & 0.07087         & 0.04598        & 0.07095        & 0.07095               & 0.07099               & 0.07095                & 0.07102\\  
   \midrule \midrule
   \multicolumn{13}{l}{\emph{Clustered (fips) standard-errors in parentheses}}\\
   \multicolumn{13}{l}{\emph{Signif. Codes: ***: 0.01, **: 0.05, *: 0.1}}\\
\end{tabular}
\par\endgroup
feols(c(log_Total_Educ_Total_Exp_pp, log_Elem_Educ_Total_Exp_pp)  ~ log_gdp_priv_ind_pc +
             sw0(log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2,
                log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + diff_total_active_n,
                log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + l(diff_total_active_n, 0:2),
                 log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + diff_total_active_prod,
                log_gdp_priv_ind_pc_l1 + log_gdp_priv_ind_pc_l2 + l(diff_total_active_prod, 0:2)) + time:as.factor(state) | fips + year, data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year) %>% etable(se.below = TRUE, drop = "time*", tex = TRUE)
Notes from the estimations:
[x 2] The variable 'time:as.factor(state)56' has been removed because of collinearity (see $collin.var).
\begingroup
\centering
\begin{tabular}{lcccccccccccc}
   \tabularnewline \midrule \midrule
   Dependent Variables: & \multicolumn{6}{c}{(log) Educ. Exp. pp} & \multicolumn{6}{c}{(log) Elementary Educ. Exp. pp}\\
   Model:                         & (1)            & (2)            & (3)            & (4)            & (5)            & (6)             & (7)            & (8)            & (9)            & (10)           & (11)           & (12)\\  
   \midrule
   \emph{Variables}\\
   (log) GDP Priv. Industry pc    & 0.1446$^{***}$ & 0.0121         & 0.0121         & 0.0123         & 0.0122         & 0.0123          & 0.1441$^{***}$ & 0.0112         & 0.0112         & 0.0114         & 0.0112         & 0.0113\\   
                                  & (0.0135)       & (0.0093)       & (0.0093)       & (0.0093)       & (0.0093)       & (0.0093)        & (0.0135)       & (0.0093)       & (0.0093)       & (0.0093)       & (0.0093)       & (0.0093)\\   
   (log,l1) GDP Priv. Industry pc &                & 0.0614$^{***}$ & 0.0614$^{***}$ & 0.0615$^{***}$ & 0.0614$^{***}$ & 0.0615$^{***}$  &                & 0.0615$^{***}$ & 0.0615$^{***}$ & 0.0617$^{***}$ & 0.0615$^{***}$ & 0.0616$^{***}$\\   
                                  &                & (0.0086)       & (0.0086)       & (0.0086)       & (0.0086)       & (0.0087)        &                & (0.0086)       & (0.0086)       & (0.0086)       & (0.0086)       & (0.0086)\\   
   (log,l2) GDP Priv. Industry pc &                & 0.1299$^{***}$ & 0.1299$^{***}$ & 0.1297$^{***}$ & 0.1299$^{***}$ & 0.1298$^{***}$  &                & 0.1302$^{***}$ & 0.1302$^{***}$ & 0.1300$^{***}$ & 0.1302$^{***}$ & 0.1301$^{***}$\\   
                                  &                & (0.0143)       & (0.0142)       & (0.0142)       & (0.0142)       & (0.0142)        &                & (0.0143)       & (0.0143)       & (0.0143)       & (0.0142)       & (0.0143)\\   
   (fd) Active Coal Mines         &                &                & -0.0002        & -0.0003        &                &                 &                &                & -0.0002        & -0.0003        &                &   \\   
                                  &                &                & (0.0009)       & (0.0010)       &                &                 &                &                & (0.0009)       & (0.0010)       &                &   \\   
   (l1,fd) Active Coal Mines      &                &                &                & -0.0005        &                &                 &                &                &                & -0.0005        &                &   \\   
                                  &                &                &                & (0.0009)       &                &                 &                &                &                & (0.0009)       &                &   \\   
   (l2,fd) Active Coal Mines      &                &                &                & -0.0020$^{**}$ &                &                 &                &                &                & -0.0019$^{**}$ &                &   \\   
                                  &                &                &                & (0.0008)       &                &                 &                &                &                & (0.0008)       &                &   \\   
   (fd) Active Coal Prod          &                &                &                &                & -0.0002        & -0.0004         &                &                &                &                & -0.0002        & -0.0004\\   
                                  &                &                &                &                & (0.0006)       & (0.0007)        &                &                &                &                & (0.0007)       & (0.0007)\\   
   (l1,fd) Active Coal Prod       &                &                &                &                &                & -0.0006         &                &                &                &                &                & -0.0006\\   
                                  &                &                &                &                &                & (0.0006)        &                &                &                &                &                & (0.0006)\\   
   (l2,fd) Active Coal Prod       &                &                &                &                &                & -0.0019$^{***}$ &                &                &                &                &                & -0.0019$^{***}$\\   
                                  &                &                &                &                &                & (0.0005)        &                &                &                &                &                & (0.0005)\\   
   \midrule
   \emph{Fixed-effects}\\
   fips                           & Yes            & Yes            & Yes            & Yes            & Yes            & Yes             & Yes            & Yes            & Yes            & Yes            & Yes            & Yes\\  
   year                           & Yes            & Yes            & Yes            & Yes            & Yes            & Yes             & Yes            & Yes            & Yes            & Yes            & Yes            & Yes\\  
   \midrule
   \emph{Fit statistics}\\
   Observations                   & 56,910         & 51,490         & 51,490         & 51,490         & 51,490         & 51,490          & 56,910         & 51,490         & 51,490         & 51,490         & 51,490         & 51,490\\  
   R$^2$                          & 0.83389        & 0.82867        & 0.82868        & 0.82869        & 0.82867        & 0.82868         & 0.83612        & 0.83098        & 0.83098        & 0.83099        & 0.83097        & 0.83099\\  
   Within R$^2$                   & 0.10943        & 0.12059        & 0.12063        & 0.12069        & 0.12060        & 0.12066         & 0.10921        & 0.12074        & 0.12074        & 0.12081        & 0.12072        & 0.12080\\  
   \midrule \midrule
   \multicolumn{13}{l}{\emph{Clustered (fips) standard-errors in parentheses}}\\
   \multicolumn{13}{l}{\emph{Signif. Codes: ***: 0.01, **: 0.05, *: 0.1}}\\
\end{tabular}
\par\endgroup

Instrumental Variable

setFixest_etable(fitstat = ~ . + ivf1 + ivf1.p + wh + wh.p + ivwald1 + ivwald1.p + ivf2 + ivf2.p + ivwald2 + ivwald2.p, se.below = TRUE)

# Using total active production as an instrument for per capita property tax
lapply(list(feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ total_active_prod, data = mines_df, se = "cluster", cluster = "fips"), 
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ total_active_prod, data = mines_df, se = "cluster", cluster = "fips"),
  # Using the lag of total active production as an instrument for per capita property tax
  feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(total_active_prod,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(total_active_prod,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)), summary) %>% etable(tex = TRUE)
NOTE: 2,710 observations removed because of NA values (IV: 0/2,710).
NOTE: 2,710 observations removed because of NA values (IV: 0/2,710).
\begingroup
\centering
\begin{tabular}{lcccc}
   \tabularnewline \midrule \midrule
   Dependent Variables:                                 & (log) Educ. Exp. pp & (log) Elementary Educ. Exp. pp & (log) Educ. Exp. pp & (log) Elementary Educ. Exp. pp\\  
   Model:                                               & (1)                 & (2)                            & (3)                 & (4)\\  
   \midrule
   \emph{Variables}\\
   (log) Property Taxes pp                              & 0.4690$^{***}$      & 0.4956$^{***}$                 & 0.5674$^{**}$       & 0.5866$^{***}$\\   
                                                        & (0.1572)            & (0.1598)                       & (0.2240)            & (0.2260)\\   
   \midrule
   \emph{Fixed-effects}\\
   fips                                                 & Yes                 & Yes                            & Yes                 & Yes\\  
   year                                                 & Yes                 & Yes                            & Yes                 & Yes\\  
   \midrule
   \emph{Fit statistics}\\
   Observations                                         & 56,910              & 56,910                         & 54,200              & 54,200\\  
   R$^2$                                                & 0.78874             & 0.78018                        & 0.75413             & 0.74631\\  
   Within R$^2$                                         & -0.13264            & -0.19484                       & -0.28119            & -0.34051\\  
   F-test (1st stage), (log) Property Taxes pp          & 8.9340              & 8.9340                         & 10.439              & 10.439\\  
   F-test (1st stage), p-value, (log) Property Taxes pp & 0.00280             & 0.00280                        & 0.00123             & 0.00123\\  
   Wu-Hausman                                           & 2.3866              & 2.9526                         & 4.5142              & 5.1377\\  
   Wu-Hausman, p-value                                  & 0.12238             & 0.08575                        & 0.03362             & 0.02342\\  
   Wald (1st stage), (log) Property Taxes pp            & 0.05886             & 0.05886                        & 0.07679             & 0.07679\\  
   Wald (1st stage), p-value, (log) Property Taxes pp   & 0.80831             & 0.80831                        & 0.78170             & 0.78170\\  
   F-test (2nd stage)                                   & 6.2720              & 7.0908                         & 10.001              & 10.825\\  
   F-test (2nd stage), p-value                          & 0.01227             & 0.00775                        & 0.00157             & 0.00100\\  
   Wald (2nd stage)                                     & 8.9015              & 9.6151                         & 6.4189              & 6.7377\\  
   Wald (2nd stage), p-value                            & 0.00285             & 0.00193                        & 0.01129             & 0.00944\\  
   \midrule \midrule
   \multicolumn{5}{l}{\emph{Clustered (fips) standard-errors in parentheses}}\\
   \multicolumn{5}{l}{\emph{Signif. Codes: ***: 0.01, **: 0.05, *: 0.1}}\\
\end{tabular}
\par\endgroup
# Using total active mines as an instrument for per capita property tax
  lapply(list(feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ total_active_n, data = mines_df, se = "cluster", cluster = "fips"),
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ total_active_n, data = mines_df, se = "cluster", cluster = "fips"),
  
  # Using lag of total active mines as an instrument for per capita property tax
 feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(total_active_n,1:2), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(total_active_n,1:2), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)), summary)  %>% etable()
NOTE: 5,420 observations removed because of NA values (IV: 0/5,420).
NOTE: 5,420 observations removed because of NA values (IV: 0/5,420).
                                                                 model 1
Dependent Var.:                                      (log) Educ. Exp. pp
                                                                        
(log) Property Taxes pp                                           1.111 
                                                                 (1.190)
Fixed-Effects:                                       -------------------
fips                                                                 Yes
year                                                                 Yes
________________________________________             ___________________
S.E.: Clustered                                                 by: fips
Observations                                                      56,910
R2                                                               0.33058
Within R2                                                        -2.5890
F-test (1st stage), (log) Property Taxes pp                      0.93481
F-test (1st stage), p-value, (log) Property Taxes pp             0.33362
Wu-Hausman                                                        2.7221
Wu-Hausman, p-value                                              0.09897
Wald (1st stage), (log) Property Taxes pp                        0.73637
Wald (1st stage), p-value, (log) Property Taxes pp               0.39083
F-test (2nd stage)                                                3.6810
F-test (2nd stage), p-value                                      0.05504
Wald (2nd stage)                                                 0.87107
Wald (2nd stage), p-value                                        0.35066

                                                                            model 2
Dependent Var.:                                      (log) Elementary Educ. Exp. pp
                                                                                   
(log) Property Taxes pp                                                      1.349 
                                                                            (1.403)
Fixed-Effects:                                       ------------------------------
fips                                                                            Yes
year                                                                            Yes
________________________________________             ______________________________
S.E.: Clustered                                                            by: fips
Observations                                                                 56,910
R2                                                                          0.03410
Within R2                                                                   -4.2501
F-test (1st stage), (log) Property Taxes pp                                 0.93481
F-test (1st stage), p-value, (log) Property Taxes pp                        0.33362
Wu-Hausman                                                                   4.3794
Wu-Hausman, p-value                                                         0.03638
Wald (1st stage), (log) Property Taxes pp                                   0.73637
Wald (1st stage), p-value, (log) Property Taxes pp                          0.39083
F-test (2nd stage)                                                           5.4972
F-test (2nd stage), p-value                                                 0.01905
Wald (2nd stage)                                                            0.92402
Wald (2nd stage), p-value                                                   0.33643

                                                                 model 3
Dependent Var.:                                      (log) Educ. Exp. pp
                                                                        
(log) Property Taxes pp                                          0.5876*
                                                                (0.2702)
Fixed-Effects:                                       -------------------
fips                                                                 Yes
year                                                                 Yes
________________________________________             ___________________
S.E.: Clustered                                                 by: fips
Observations                                                      51,490
R2                                                               0.75440
Within R2                                                       -0.26064
F-test (1st stage), (log) Property Taxes pp                       3.5892
F-test (1st stage), p-value, (log) Property Taxes pp             0.02763
Wu-Hausman                                                        2.9865
Wu-Hausman, p-value                                              0.08396
Wald (1st stage), (log) Property Taxes pp                         2.8169
Wald (1st stage), p-value, (log) Property Taxes pp               0.05980
F-test (2nd stage)                                                6.7876
F-test (2nd stage), p-value                                      0.00918
Wald (2nd stage)                                                  4.7306
Wald (2nd stage), p-value                                        0.02964

                                                                            model 4
Dependent Var.:                                      (log) Elementary Educ. Exp. pp
                                                                                   
(log) Property Taxes pp                                                     0.6125*
                                                                           (0.2744)
Fixed-Effects:                                       ------------------------------
fips                                                                            Yes
year                                                                            Yes
________________________________________             ______________________________
S.E.: Clustered                                                            by: fips
Observations                                                                 51,490
R2                                                                          0.74449
Within R2                                                                  -0.32920
F-test (1st stage), (log) Property Taxes pp                                  3.5892
F-test (1st stage), p-value, (log) Property Taxes pp                        0.02763
Wu-Hausman                                                                   3.4873
Wu-Hausman, p-value                                                         0.06185
Wald (1st stage), (log) Property Taxes pp                                    2.8169
Wald (1st stage), p-value, (log) Property Taxes pp                          0.05980
F-test (2nd stage)                                                           7.4623
F-test (2nd stage), p-value                                                 0.00630
Wald (2nd stage)                                                             4.9827
Wald (2nd stage), p-value                                                   0.02561
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Changes in activity

# Using total active production as an instrument for per capita property tax
lapply(list(feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ diff_total_active_prod, data = mines_df, se = "cluster", cluster = "fips"), 
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ diff_total_active_prod, data = mines_df, se = "cluster", cluster = "fips"),
  # Using the lag of total active production as an instrument for per capita property tax
  feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(diff_total_active_prod,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(diff_total_active_prod,1), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)), summary) %>% etable()
NOTE: 2,710 observations removed because of NA values (IV: 0/2,710).
NOTE: 2,710 observations removed because of NA values (IV: 0/2,710).
                                                                 model 1
Dependent Var.:                                      (log) Educ. Exp. pp
                                                                        
(log) Property Taxes pp                                            17.23
                                                                 (167.9)
Fixed-Effects:                                       -------------------
fips                                                                 Yes
year                                                                 Yes
________________________________________             ___________________
S.E.: Clustered                                                 by: fips
Observations                                                      56,910
R2                                                               -171.93
Within R2                                                        -926.12
F-test (1st stage), (log) Property Taxes pp                      0.00136
F-test (1st stage), p-value, (log) Property Taxes pp             0.97055
Wu-Hausman                                                        1.3595
Wu-Hausman, p-value                                              0.24363
Wald (1st stage), (log) Property Taxes pp                        0.01030
Wald (1st stage), p-value, (log) Property Taxes pp               0.91918
F-test (2nd stage)                                                1.2910
F-test (2nd stage), p-value                                      0.25587
Wald (2nd stage)                                                 0.01052
Wald (2nd stage), p-value                                        0.91830

                                                                            model 2
Dependent Var.:                                      (log) Elementary Educ. Exp. pp
                                                                                   
(log) Property Taxes pp                                                       18.22
                                                                            (177.4)
Fixed-Effects:                                       ------------------------------
fips                                                                            Yes
year                                                                            Yes
________________________________________             ______________________________
S.E.: Clustered                                                            by: fips
Observations                                                                 56,910
R2                                                                          -192.52
Within R2                                                                  -1,050.9
F-test (1st stage), (log) Property Taxes pp                                 0.00136
F-test (1st stage), p-value, (log) Property Taxes pp                        0.97055
Wu-Hausman                                                                   1.5382
Wu-Hausman, p-value                                                         0.21489
Wald (1st stage), (log) Property Taxes pp                                   0.01030
Wald (1st stage), p-value, (log) Property Taxes pp                          0.91918
F-test (2nd stage)                                                           1.4626
F-test (2nd stage), p-value                                                 0.22653
Wald (2nd stage)                                                            0.01055
Wald (2nd stage), p-value                                                   0.91821

                                                                 model 3
Dependent Var.:                                      (log) Educ. Exp. pp
                                                                        
(log) Property Taxes pp                                          -1.651 
                                                                 (3.341)
Fixed-Effects:                                       -------------------
fips                                                                 Yes
year                                                                 Yes
________________________________________             ___________________
S.E.: Clustered                                                 by: fips
Observations                                                      54,200
R2                                                               -1.1271
Within R2                                                        -10.084
F-test (1st stage), (log) Property Taxes pp                      0.05353
F-test (1st stage), p-value, (log) Property Taxes pp             0.81704
Wu-Hausman                                                       0.58931
Wu-Hausman, p-value                                              0.44269
Wald (1st stage), (log) Property Taxes pp                        0.27244
Wald (1st stage), p-value, (log) Property Taxes pp               0.60170
F-test (2nd stage)                                               0.43432
F-test (2nd stage), p-value                                      0.50988
Wald (2nd stage)                                                 0.24421
Wald (2nd stage), p-value                                        0.62119

                                                                            model 4
Dependent Var.:                                      (log) Elementary Educ. Exp. pp
                                                                                   
(log) Property Taxes pp                                                     -1.815 
                                                                            (3.685)
Fixed-Effects:                                       ------------------------------
fips                                                                            Yes
year                                                                            Yes
________________________________________             ______________________________
S.E.: Clustered                                                            by: fips
Observations                                                                 54,200
R2                                                                          -1.4759
Within R2                                                                   -12.083
F-test (1st stage), (log) Property Taxes pp                                 0.05353
F-test (1st stage), p-value, (log) Property Taxes pp                        0.81704
Wu-Hausman                                                                  0.70253
Wu-Hausman, p-value                                                         0.40194
Wald (1st stage), (log) Property Taxes pp                                   0.27244
Wald (1st stage), p-value, (log) Property Taxes pp                          0.60170
F-test (2nd stage)                                                          0.53142
F-test (2nd stage), p-value                                                 0.46602
Wald (2nd stage)                                                            0.24258
Wald (2nd stage), p-value                                                   0.62235
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Using total active mines as an instrument for per capita property tax
  lapply(list(feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ diff_total_active_n, data = mines_df, se = "cluster", cluster = "fips"),
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ diff_total_active_n, data = mines_df, se = "cluster", cluster = "fips"),
  
  # Using lag of total active mines as an instrument for per capita property tax
 feols(log_Total_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(diff_total_active_n,1:2), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year),
  feols(log_Elem_Educ_Total_Exp_pp ~ 1 | fips + year | log_Property_Tax_pp ~ l(diff_total_active_n,1:2), data = mines_df, se = "cluster", cluster = "fips", panel.id = ~fips+year)), summary)  %>% etable()
NOTE: 5,420 observations removed because of NA values (IV: 0/5,420).
NOTE: 5,420 observations removed because of NA values (IV: 0/5,420).
                                                                 model 1
Dependent Var.:                                      (log) Educ. Exp. pp
                                                                        
(log) Property Taxes pp                                          0.2499 
                                                                (0.3253)
Fixed-Effects:                                       -------------------
fips                                                                 Yes
year                                                                 Yes
________________________________________             ___________________
S.E.: Clustered                                                 by: fips
Observations                                                      56,910
R2                                                               0.83289
Within R2                                                        0.10408
F-test (1st stage), (log) Property Taxes pp                       1.2430
F-test (1st stage), p-value, (log) Property Taxes pp             0.26490
Wu-Hausman                                                       0.01524
Wu-Hausman, p-value                                              0.90175
Wald (1st stage), (log) Property Taxes pp                         5.3428
Wald (1st stage), p-value, (log) Property Taxes pp               0.02081
F-test (2nd stage)                                               0.24782
F-test (2nd stage), p-value                                      0.61862
Wald (2nd stage)                                                 0.59038
Wald (2nd stage), p-value                                        0.44228

                                                                            model 2
Dependent Var.:                                      (log) Elementary Educ. Exp. pp
                                                                                   
(log) Property Taxes pp                                                     0.1829 
                                                                           (0.3206)
Fixed-Effects:                                       ------------------------------
fips                                                                            Yes
year                                                                            Yes
________________________________________             ______________________________
S.E.: Clustered                                                            by: fips
Observations                                                                 56,910
R2                                                                          0.83680
Within R2                                                                   0.11291
F-test (1st stage), (log) Property Taxes pp                                  1.2430
F-test (1st stage), p-value, (log) Property Taxes pp                        0.26490
Wu-Hausman                                                                  7.21e-5
Wu-Hausman, p-value                                                         0.99322
Wald (1st stage), (log) Property Taxes pp                                    5.3428
Wald (1st stage), p-value, (log) Property Taxes pp                          0.02081
F-test (2nd stage)                                                          0.13434
F-test (2nd stage), p-value                                                 0.71398
Wald (2nd stage)                                                            0.32540
Wald (2nd stage), p-value                                                   0.56838

                                                                 model 3
Dependent Var.:                                      (log) Educ. Exp. pp
                                                                        
(log) Property Taxes pp                                          0.2703 
                                                                (0.4858)
Fixed-Effects:                                       -------------------
fips                                                                 Yes
year                                                                 Yes
________________________________________             ___________________
S.E.: Clustered                                                 by: fips
Observations                                                      51,490
R2                                                               0.82758
Within R2                                                        0.11499
F-test (1st stage), (log) Property Taxes pp                      0.61169
F-test (1st stage), p-value, (log) Property Taxes pp             0.54244
Wu-Hausman                                                       0.01196
Wu-Hausman, p-value                                              0.91293
Wald (1st stage), (log) Property Taxes pp                         1.9747
Wald (1st stage), p-value, (log) Property Taxes pp               0.13881
F-test (2nd stage)                                               0.24471
F-test (2nd stage), p-value                                      0.62083
Wald (2nd stage)                                                 0.30943
Wald (2nd stage), p-value                                        0.57803

                                                                            model 4
Dependent Var.:                                      (log) Elementary Educ. Exp. pp
                                                                                   
(log) Property Taxes pp                                                     0.2461 
                                                                           (0.4838)
Fixed-Effects:                                       ------------------------------
fips                                                                            Yes
year                                                                            Yes
________________________________________             ______________________________
S.E.: Clustered                                                            by: fips
Observations                                                                 51,490
R2                                                                          0.83037
Within R2                                                                   0.11758
F-test (1st stage), (log) Property Taxes pp                                 0.61169
F-test (1st stage), p-value, (log) Property Taxes pp                        0.54244
Wu-Hausman                                                                  0.00497
Wu-Hausman, p-value                                                         0.94381
Wald (1st stage), (log) Property Taxes pp                                    1.9747
Wald (1st stage), p-value, (log) Property Taxes pp                          0.13881
F-test (2nd stage)                                                          0.20536
F-test (2nd stage), p-value                                                 0.65043
Wald (2nd stage)                                                            0.25885
Wald (2nd stage), p-value                                                   0.61091
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Bartik

Bartik Instrument

ss <- readRDS(here("data/temp/shift_shares_base_01_05_11.RDS"))

ss %>% 
  #filter(!(substr(fips, 1,2) %in% c("02", "15", "51", "09", "24"))) %>% 
  pull(fips) %>% 
  unique %>% 
  setdiff(unique(mines_df$fips), .)
character(0)
ss_df <- mines_df %>% 
  left_join(., ss, by = c("year", "fips"))


# library(ShiftShareSE)
# # Estimate the shift-share instrumental variable regression
# ivreg_ss(d_sh_empl ~ 1 | shock, 
#           X=IV, 
#           data=ADH$reg,
#           W=ADH$W,
#           method=c("ehw", "akm", "akm0")
#           )
# 
# ivreg_ss(log_Elem_Educ_Total_Exp_pp ~ 1 | fd_annual_avg_emplvl_21,
#          X = fd_annual_avg_emplvl_21,
#         data=ss_df,
#         W=ss_df$share_emp_extraction,
#         method=c("ehw", "akm", "akm0")
#          )

ss_labs <- as_labeller(c("ss_emp_coal_2001" = "Coal",
    "ss_emp_oil_gas_2001" = "Oil & Gas",
    "ss_emp_extraction_2001" = "Extractive Industries",
    "ss_wage_coal_2001" = "Coal",
    "ss_wage_oil_gas_2001" = "Oil & Gas",
    "ss_wage_extraction_2001" = "Extractive Industries"))



sswage <- ss_df %>% 
  select(fips, year,ss_emp_coal_2001, ss_emp_oil_gas_2001, ss_emp_extraction_2001) %>% 
  pivot_longer(contains("ss")) %>% 
  group_by(fips) %>% 
  filter(any(!is.na(value))) %>% 
  ungroup %>% 
  ggplot(aes(x = year, y = value, group = fips)) +
  geom_line(alpha = 0.2, color = "darkblue") + 
  facet_wrap(~name, scales = "free", labeller = ss_labs) +
  xlab("Year") +
  ylab("Change in Total Employment") +
  labs(title = "Employment-based Shift-Share Instrument") +
  theme_bw() + 
  theme(legend.position = "none",
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        strip.text = element_text(face = "bold"),
                strip.background = element_rect(
     color="grey", fill="lightsteelblue2", linetype="solid"),
        panel.border = element_rect(color = "grey"),
        plot.background = element_blank(),
        plot.title = element_text(hjust=0.5))
  
ss_coal <- ss_df %>% 
  select(fips, year,ss_wage_coal_2001, ss_wage_oil_gas_2001, ss_wage_extraction_2001) %>% 
  pivot_longer(contains("ss")) %>% 
  group_by(fips) %>% 
  filter(any(!is.na(value))) %>% 
  ungroup %>% 
  mutate(value = value/1000000) %>%  
  ggplot(aes(x = year, y = value, group = fips)) +
  geom_line(alpha = 0.2, color = "violetred3") + 
  facet_wrap(~name, scales = "free", labeller = ss_labs) +
  xlab("Year") +
  ylab("Change in Total Wages (millions)") +  
  labs(title = "Wage-based Shift-Share Instrument") +
  theme_bw() +
  theme(legend.position = "none",
        strip.background = element_rect(
     color="grey", fill="pink1", linetype="solid"),
        panel.grid.major = element_blank(), 
        panel.border = element_rect(color = "grey"),
             strip.text = element_text(face = "bold"),
        panel.grid.minor = element_blank(),
        plot.background = element_blank(),
        plot.title = element_text(hjust=0.5))

bartik <- arrangeGrob(grid.arrange(sswage, ss_coal, ncol = 1))
Warning: Removed 39459 rows containing missing values (`geom_line()`).
Removed 39459 rows containing missing values (`geom_line()`).

ggsave(here("output/plots/bartik_graphs.jpg"), bartik, width = 25, height = 25, units = "cm")
Wage Instrument
scaled_ss <- ss_df %>% 
  mutate(across(contains("ss"), ~./1000000000))


feols(log_Elem_Educ_Total_Exp_pp ~ log_gdp_total_pc + 
        sw(ss_wage_coal_2001, ss_wage_coal_2005, ss_wage_coal_2011,  
           ss_wage_oil_gas_2001, ss_wage_oil_gas_2005, ss_wage_oil_gas_2011,  
           ss_wage_ff_2001, ss_wage_ff_2005, ss_wage_ff_2011, 
            ss_wage_extraction_2001, ss_wage_extraction_2005, ss_wage_extraction_2011) | fips + year, data = scaled_ss, se = "cluster", cluster = "fips")
Standard-errors: Clustered (fips) 
Expl. vars.: log_gdp_total_pc + ss_wage_coal_2001
                   Estimate Std. Error  t value  Pr(>|t|)    
log_gdp_total_pc   0.230071   0.071927  3.19868 0.0026264 ** 
ss_wage_coal_2001 -0.088016   0.075890 -1.15979 0.2526849    
---
Expl. vars.: log_gdp_total_pc + ss_wage_coal_2005
                   Estimate Std. Error   t value  Pr(>|t|)    
log_gdp_total_pc   0.209336   0.070373  2.974676 0.0043219 ** 
ss_wage_coal_2005 -0.057379   0.072852 -0.787609 0.4342466    
---
Expl. vars.: log_gdp_total_pc + ss_wage_coal_2011
                   Estimate Std. Error   t value Pr(>|t|)    
log_gdp_total_pc   0.147750   0.061732  2.393406 0.020337 *  
ss_wage_coal_2011 -0.000336   0.064127 -0.005233 0.995845    
---
Expl. vars.: log_gdp_total_pc + ss_wage_oil_gas_2001
                     Estimate Std. Error  t value   Pr(>|t|)    
log_gdp_total_pc     0.217069   0.033905 6.402266 8.0818e-10 ***
ss_wage_oil_gas_2001 0.005454   0.038958 0.140005 8.8877e-01    
---
Expl. vars.: log_gdp_total_pc + ss_wage_oil_gas_2005
                      Estimate Std. Error   t value   Pr(>|t|)    
log_gdp_total_pc      0.219827   0.028286  7.771541 1.2246e-13 ***
ss_wage_oil_gas_2005 -0.017032   0.032431 -0.525183 5.9984e-01    
---
Expl. vars.: log_gdp_total_pc + ss_wage_oil_gas_2011
                      Estimate Std. Error   t value   Pr(>|t|)    
log_gdp_total_pc      0.222985   0.031451  7.089853 8.4996e-12 ***
ss_wage_oil_gas_2011 -0.021485   0.053896 -0.398640 6.9042e-01    
---
Expl. vars.: log_gdp_total_pc + ss_wage_ff_2001
                  Estimate Std. Error   t value Pr(>|t|) 
log_gdp_total_pc  0.505203   0.252155  2.003543  0.10148 
ss_wage_ff_2001  -0.065494   0.073039 -0.896705  0.41097 
---
Expl. vars.: log_gdp_total_pc + ss_wage_ff_2005
                  Estimate Std. Error   t value  Pr(>|t|)    
log_gdp_total_pc  0.374696   0.093686  3.999489 0.0011605 ** 
ss_wage_ff_2005  -0.012152   0.029666 -0.409635 0.6878637    
---
Expl. vars.: log_gdp_total_pc + ss_wage_ff_2011
                  Estimate Std. Error   t value  Pr(>|t|)    
log_gdp_total_pc  0.395129   0.114553  3.449305 0.0035769 ** 
ss_wage_ff_2011  -0.001196   0.029609 -0.040405 0.9683035    
---
Expl. vars.: log_gdp_total_pc + ss_wage_extraction_2001
                         Estimate Std. Error  t value  Pr(>|t|)    
log_gdp_total_pc         0.239140   0.021478 11.13401 < 2.2e-16 ***
ss_wage_extraction_2001 -0.004966   0.003418 -1.45296   0.14653    
---
Expl. vars.: log_gdp_total_pc + ss_wage_extraction_2005
                         Estimate Std. Error  t value  Pr(>|t|)    
log_gdp_total_pc         0.240558   0.020146 11.94065 < 2.2e-16 ***
ss_wage_extraction_2005 -0.009496   0.003782 -2.51081  0.012178 *  
---
Expl. vars.: log_gdp_total_pc + ss_wage_extraction_2011
                         Estimate Std. Error  t value   Pr(>|t|)    
log_gdp_total_pc         0.245755   0.018330 13.40741  < 2.2e-16 ***
ss_wage_extraction_2011 -0.014311   0.003647 -3.92361 9.2067e-05 ***
Employment Instrument
feols(log_Elem_Educ_Total_Exp_pp ~ log_gdp_total_pc + 
        sw(ss_emp_coal_2001, ss_emp_coal_2005, ss_emp_coal_2011,  
           ss_emp_oil_gas_2001, ss_emp_oil_gas_2005, ss_emp_oil_gas_2011,  
           ss_emp_ff_2001, ss_emp_ff_2005, ss_emp_ff_2011, 
            ss_emp_extraction_2001, ss_emp_extraction_2005, ss_emp_extraction_2011) | fips + year, data = scaled_ss, se = "cluster", cluster = "fips")
Notes from the estimations:
[x 1] The variable 'ss_emp_ff_2001' has been removed because of collinearity (see $collin.var).
Standard-errors: Clustered (fips) 
Expl. vars.: log_gdp_total_pc + ss_emp_coal_2001
                      Estimate   Std. Error  t value Pr(>|t|)    
log_gdp_total_pc      0.232853     0.072495  3.21198 0.002531 ** 
ss_emp_coal_2001 -17323.823187 11399.084124 -1.51976 0.136065    
---
Expl. vars.: log_gdp_total_pc + ss_emp_coal_2005
                      Estimate   Std. Error   t value  Pr(>|t|)    
log_gdp_total_pc      0.210717     0.070703  2.980326 0.0042538 ** 
ss_emp_coal_2005 -10867.409061 11381.054732 -0.954868 0.3437482    
---
Expl. vars.: log_gdp_total_pc + ss_emp_coal_2011
                     Estimate  Std. Error   t value Pr(>|t|)    
log_gdp_total_pc     0.154212    0.062471  2.468539 0.016891 *  
ss_emp_coal_2011 -4441.761829 9865.117918 -0.450249 0.654402    
---
Expl. vars.: log_gdp_total_pc + ss_emp_oil_gas_2001
                        Estimate  Std. Error  t value   Pr(>|t|)    
log_gdp_total_pc        0.215446     0.03374 6.385460 8.8768e-10 ***
ss_emp_oil_gas_2001 11472.594487 16874.75758 0.679867 4.9725e-01    
---
Expl. vars.: log_gdp_total_pc + ss_emp_oil_gas_2005
                       Estimate   Std. Error  t value   Pr(>|t|)    
log_gdp_total_pc       0.217589     0.028187 7.719600 1.7222e-13 ***
ss_emp_oil_gas_2005 3201.326352 13930.618763 0.229805 8.1840e-01    
---
Expl. vars.: log_gdp_total_pc + ss_emp_oil_gas_2011
                        Estimate   Std. Error   t value   Pr(>|t|)    
log_gdp_total_pc        0.222334     0.031361  7.089606 8.5128e-12 ***
ss_emp_oil_gas_2011 -4157.499655 20845.055784 -0.199448 8.4204e-01    
---
Expl. vars.: log_gdp_total_pc + ss_emp_ff_2001
                 Estimate Std. Error t value  Pr(>|t|)    
log_gdp_total_pc  0.36961   0.090687 4.07567 0.0095805 ** 
---
Expl. vars.: log_gdp_total_pc + ss_emp_ff_2005
                     Estimate   Std. Error   t value  Pr(>|t|)    
log_gdp_total_pc     0.381064     0.102464  3.719006 0.0020574 ** 
ss_emp_ff_2005   -4877.147951 10010.817440 -0.487188 0.6331681    
---
Expl. vars.: log_gdp_total_pc + ss_emp_ff_2011
                     Estimate   Std. Error   t value  Pr(>|t|)    
log_gdp_total_pc     0.421735     0.133923  3.149089 0.0066187 ** 
ss_emp_ff_2011   -4385.346879 11202.275518 -0.391469 0.7009553    
---
Expl. vars.: log_gdp_total_pc + ss_emp_extraction_2001
                          Estimate Std. Error  t value  Pr(>|t|)    
log_gdp_total_pc          0.238894   0.021392 11.16731 < 2.2e-16 ***
ss_emp_extraction_2001 -898.369720 707.180882 -1.27035   0.20424    
---
Expl. vars.: log_gdp_total_pc + ss_emp_extraction_2005
                           Estimate Std. Error  t value  Pr(>|t|)    
log_gdp_total_pc           0.239842    0.02007 11.95029 < 2.2e-16 ***
ss_emp_extraction_2005 -1705.995400  853.73025 -1.99828  0.045915 *  
---
Expl. vars.: log_gdp_total_pc + ss_emp_extraction_2011
                           Estimate Std. Error  t value   Pr(>|t|)    
log_gdp_total_pc           0.245383   0.018344 13.37701  < 2.2e-16 ***
ss_emp_extraction_2011 -2619.261079 788.660033 -3.32115 0.00092282 ***

Summary statistics with coal production

# Variables of interest for descriptive statistics
vars <- c("Total_Revenue", "Property_Tax", "Total_IG_Revenue", "Total_Fed_IG_Revenue", "Total_State_IG_Revenue", "Total_Expenditure")

mines_df %>%
  mutate(across(c(esa_tot_exp, vars, paste0(vars, "_pp"), gdp_total, gdp_priv_ind, gdp_govt, gdp_o_g_mining_quarr_21), ~./1000)) %>% 
  select(year, esa_tot_exp, esa_tot_exp_pp, Enrollment, all_of(vars), paste0(vars, "_pp"), pop_total, pop_school_age, gdp_total, gdp_priv_ind, gdp_govt, gdp_o_g_mining_quarr_21, total_active_n, total_active_prod) %>% 
  # rename("ESA Expenditure" = esa_tot_exp, 
  #        "ESA Expenditure per pupil" = esa_tot_exp_pp, 
  #        "Revenue" = "Total_Revenue", 
  #        "Property Tax" = "Property_Tax",
  #        "IG Revenue" = "Total_IG_Revenue", 
  #        "Federal IG Revenue" = "Total_Fed_IG_Revenue", 
  #        "State IG Revenue" = "Total_State_IG_Revenue",
  #        "Expenditure" = "Total_Expenditure",
  #        "Revenue per pupil" = "Total_Revenue_pp", 
  #        "Property Tax per pupil" = "Property_Tax_pp",
  #        "IG Revenue per pupil" = "Total_IG_Revenue_pp", 
  #        "Federal IG Revenue per pupil" = "Total_Fed_IG_Revenue_pp", 
  #        "State IG Revenue per pupil" = "Total_State_IG_Revenue_pp",
  #        "Expenditure per pupil" = "Total_Expenditure_pp",
  #        "Population" = pop_total,
  #        "School Age Population" = pop_school_age, 
  #        "GDP" = gdp_total,
  #        "Private Industry GDP" = gdp_priv_ind, 
  #        "Government GDP" = gdp_govt, 
  #        "Oil, gas, mining GDP" = gdp_o_g_mining_quarr_21) %>% 
  #dplyr::group_split(year < 2007) %>% 
  #    purrr::iwalk(.,~{
  #      .x %>% 
          select(-year) %>% 
          data.frame() %>%
          stargazer(digits = 0, digits.extra = 3, covariate.labels = c("ESA Expenditure", 
         "ESA Expenditure per pupil",
         "Enrollment",
         "Revenue", 
         "Property Tax",
         "IG Revenue", 
         "Federal IG Revenue",
         "State IG Revenue",
         "Expenditure",
         "Revenue per pupil", 
         "Property Tax per pupil",
         "IG Revenue per pupil", 
         "Federal IG Revenue per pupil", 
         "State IG Revenue per pupil",
         "Expenditure per pupil",
         "Population",
         "School Age Population", 
         "GDP",
         "GDP - Private Industry", 
         "GDP - Government", 
         "GDP - Oil, gas, mining",
         "Active Coal Mines",
         "Coal Produced (k short tons)"), type = "latex")

% Table created by stargazer v.5.2.3 by Marek Hlavac, Social Policy Institute. E-mail: marek.hlavac at gmail.com
% Date and time: Thu, Mar 21, 2024 - 11:27:35
\begin{table}[!htbp] \centering 
  \caption{} 
  \label{} 
\begin{tabular}{@{\extracolsep{5pt}}lccccc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
Statistic & \multicolumn{1}{c}{N} & \multicolumn{1}{c}{Mean} & \multicolumn{1}{c}{St. Dev.} & \multicolumn{1}{c}{Min} & \multicolumn{1}{c}{Max} \\ 
\hline \\[-1.8ex] 
ESA Expenditure & 7,648 & 20 & 37 & 0 & 463 \\ 
ESA Expenditure per pupil & 7,648 & 1 & 2 & 0 & 37 \\ 
Enrollment & 56,910 & 14,654 & 50,465 & 2 & 1,723,961 \\ 
Revenue & 56,910 & 169 & 614 & 0 & 25,052 \\ 
Property Tax & 56,910 & 63 & 252 & 0 & 7,909 \\ 
IG Revenue & 56,910 & 94 & 370 & 0 & 18,363 \\ 
Federal IG Revenue & 56,910 & 1 & 4 & 0 & 137 \\ 
State IG Revenue & 56,910 & 91 & 361 & 0 & 17,810 \\ 
Expenditure & 56,910 & 172 & 628 & 0 & 23,008 \\ 
Revenue per pupil & 56,910 & 0 & 0 & 0 & 0 \\ 
Property Tax per pupil & 56,910 & 4 & 5 & 0 & 165 \\ 
IG Revenue per pupil & 56,910 & 7 & 3 & 0 & 116 \\ 
Federal IG Revenue per pupil & 56,910 & 0 & 0 & 0 & 0 \\ 
State IG Revenue per pupil & 56,910 & 0 & 0 & 0 & 0 \\ 
Expenditure per pupil & 56,910 & 0 & 0 & 0 & 0 \\ 
Population & 56,910 & 95,455 & 324,316 & 256 & 10,105,708 \\ 
School Age Population & 56,910 & 19,360 & 66,325 & 45 & 2,219,357 \\ 
GDP & 56,910 & 4,758 & 20,754 & 4 & 836,163 \\ 
GDP - Private Industry & 56,910 & 4,180 & 18,726 & 3 & 752,486 \\ 
GDP - Government & 56,910 & 579 & 2,186 & 1 & 83,677 \\ 
GDP - Oil, gas, mining & 56,910 & 95 & 572 & 0 & 27,694 \\ 
Active Coal Mines & 56,910 & 0 & 2 & 0 & 92 \\ 
Coal Produced (k short tons) & 56,910 & 340 & 6,575 & 0 & 415,924 \\ 
\hline \\[-1.8ex] 
\end{tabular} 
\end{table}